package cn.sykj.car.service;

import cn.sykj.car.common.ResponseBean;
import cn.sykj.car.entity.Roles;
import cn.sykj.car.vo.RolesVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 角色 服务类
 * </p>
 *
 * @author Yixu
 * @since 2018-11-29
 */
public interface IRolesService extends IService<Roles> {

    // 获取已添加的角色
    public List<Roles> getRolesByUser(Integer userId);

    // 获取未添加的角色
    public List<Roles> getWtjRolesByUser(Integer userId);


    /**
     * 查询单条
     * @param condition
     * @return
     * @author yuhao 2018-12-06 17:15
     */
    public Roles selectOneRoles(Roles condition);

    /**
     * 分页查询
     * @param page
     * @param condition
     * @return
     * @author yuhao 2018-12-06 17:15
     */
    public Page<RolesVO> pageRoles(Page<RolesVO> page, RolesVO condition);

    /**
     * 添加角色：同时添加菜单权限、相关用户、操作权限
     * @param roles
     * @return
     * @throws Exception
     * @author yuhao 2018-12-07 11:45
     */
    public Boolean insertRoles(RolesVO roles) throws Exception;

    /**
     * 修改角色：同时修改菜单权限、相关用户、操作权限
     * @param roles
     * @return
     * @throws Exception
     * @author yuhao 2018-12-07 11:46
     */
    public Boolean updateRoles(RolesVO roles) throws Exception;

    /**
     * 删除角色：如果有菜单权限、相关用户、操作权限，不能删，否则可删
     * @param roles
     * @return
     * @throws Exception
     * @author yuhao 2018-12-07 11:47
     */
    public Boolean deleteRoles(RolesVO roles) throws Exception;

    /**
     * 查询角色/组织机构列表（不翻页）
     * @param condition
     * @return
     */
    public RolesVO selectAllRoles(RolesVO condition) throws Exception;


}
